1. Field of the Invention
The present invention relates to an interpreter capable of concurrently executing multiple applications, an execution method for the interpreter, and a computer-readable storage medium storing an information processing program for implementing the execution method.
2. Description of the Related Art
Hitherto, interpreters with multiple paths for interpreting a programming language and for executing programs written in the programming language on a computer have been supplied. For example, a multithread-supporting interpreter is one of the above-mentioned interpreters, which is capable of performing numerical operations and network communication concurrently. In this case, a computer executes one application program integrally composed of elements for processing allocated in the individual threads that function as execution paths.
With the above-mentioned technique, however, functions to be executed by the interpreter must be incorporated as one application program. This makes it difficult for the interpreter to implement multiple functions, and lacks in providing flexibility and extendibility in program description. Higher flexibility in program description can be obtained in methods such as a modular programming method and a building-block method which realize one function by one application. In view of the above, a number of methods can be considered for allowing execution of multiple applications.
A first method which can be considered is to activate multiple interpreters and use each of the interpreters to execute each application. With this method, however, one computer has multiple instances of an interpreter, thereby wasting memory.
A second method which can be considered is to provide a selectively executing program D and to control the program to execute one or more applications selected from multiple applications, for example, three applications A, B, and C. In the second method, however, it is a time-consuming job to create or prepare the selectively executing program D. Also, every time a change, for example, in the number and type of applications to be started, occurs, the selectively executing program D must be modified, causing the method to be complicated.
Also, as a basic problem, the second method occasionally terminates applications without being properly executed. In standard object-oriented programming, classes are employed to represent types of objects, and there are cases in which class variables to be shared among multiple objects generated by identical classes are used.
Also, in the above second method, one instance is provided for each class variable to be generated in an interpreter. In this case, consistency regarding the use of class variables is required among applications; otherwise, problems are caused. For example, for a class variable y belonging to a class X, when the application B performs initialization with an initial value xe2x80x9c1xe2x80x9d, and the application C performs initialization with an initial value xe2x80x9c0xe2x80x9d, if the individual applications B and C continue execution on condition that the class variable y is not changed, that is remaining as the initial value, unexpected results are produced as a matter of course.
To prevent a problem such as that described above, rules for restricting use of class variables among applications must be applied when creating the application. However, this results in an increase of restrictions for description of application programs. In addition, problems remain unresolved in that operation of existing applications cannot be guaranteed.
Accordingly, it is an object of the present invention to provide an interpreter capable of concurrently executing multiple applications without preliminarily incorporating multiple functions that operate with the interpreter as one application
Another object of the invention is to provide an interpreter that realizes multiple functions and allows improved flexibility and extendibility in program description.
To achieve these objects, according to one aspect of the present invention, an interpreter for a programming language supporting class variables comprises receiving means for receiving specifying information for specifying applications written in the programming language; generating means for generating individual application areas corresponding to the applications, the individual application areas being for storing data required for execution of the applications specified with the specifying information; allocating means for allocating class variable areas for the class variables in the individual application areas corresponding to the specified applications if new classes having class variables are detected from classes required to execute the specified applications; executing means for executing the specified applications; and accessing means for accessing the class variables in the individual application areas corresponding to the applications when the class variables are to be accessed while the specified applications are being executed by the executing means.
According to another aspect of the present invention, a method for executing applications by an interpreter for a programming language supporting class variables comprises a receiving step for receiving specifying information for specifying applications written in the programming language; a generating step for generating individual application areas corresponding to the applications, the individual application areas being for storing data required for execution of the applications specified with the specifying information; an allocating step for allocating class variable areas for the class variables in the individual application areas corresponding to the specified applications if new classes having class variables are detected from classes required for executing the specified applications; and an executing step for executing the specified applications; wherein the class variables in the individual application areas corresponding to the applications are accessed while the specified applications are being executed in the executing step.
According to still another aspect of the present invention, a computer-readable storage medium storing an information processing program for controlling a computer to perform functions of an interpreter for a programming language supporting class variables, wherein the information processing program comprises codes for instructing the computer to perform a receiving step for receiving specifying information for specifying applications written in the programming language; a generating step for generating individual application areas corresponding to the applications, the individual application areas being for storing data required for execution of the applications specified with the specifying information; an allocating step for allocating class variable areas for the class variables in the individual application areas corresponding to the specified applications if new classes having class variables are detected from classes required to execute the specified applications; and an executing step for executing the specified applications; wherein the class variables in the individual application areas corresponding to the applications are accessed while the specified applications are being executed in the executing step.
Further objects, features and advantages of the present invention will become apparent from the following description of the preferred embodiments with reference to the attached drawings.